package org.shop.dao;

import java.util.List;

import org.shop.entity.UserInfo;
import org.shop.util.PagerUtil;

/**
 * 用户数据访问接口 - 标准 - 规范 包含了用户这个实体（数据表）的相关增、删、改、查的数据库操作方法
 * 
 * @author Administrator
 *
 */
public interface UserInfoDao {
	// 增
	public int insertUser(UserInfo user);

	// 删
	public int deleteUser(int id);

	// 改
	public int updateUser(UserInfo user);

	// 查 - 查询所有 - 返回多个数据
	public List<UserInfo> selectAllUser();

	// 查 - 根据ID查询 - 返回唯一数据
	public UserInfo selectUserById(int id);

	// 查 - 服务于登录
	public UserInfo selectUser(String username);

	/**
	 * 查 - 查询所有 + 分页 - 返回多个数据
	 * 
	 * @param currentPage 当前页
	 * @param pageCount   每页显示记录数
	 * @return
	 */
	public PagerUtil<UserInfo> selectAllUserByPager(int currentPage, int pageCount);

	/**
	 * 查询用户总记录数 - 服务于分页查询
	 * @return
	 */
	public int selectAllUserCount();

	
	// 查 - 条件查询(精确、模糊) + 分页 - 返回多个数据
	/**
	 * 条件 + 分页查询
	 * @param currentPage 当前页
	 * @param pageCount 每页记录数 
	 * @param cond 查询条件
	 * @return
	 */
	public PagerUtil<UserInfo> selectAllUserByPagerAndCond(int currentPage, int pageCount,String cond);

	/**
	 * 查询用户总记录数 - 服务于分页查询
	 * @param cond 查询条件
	 * @return
	 */
	public int selectAllUserCount(String cond);
}
